//package com.hzw.icane.utils;
//
//import java.io.BufferedReader;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileNotFoundException;
//import java.io.FileReader;
//import java.io.IOException;
//import java.net.InetAddress;
//import java.net.NetworkInterface;
//import java.net.URLEncoder;
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.Date;
//import java.util.List;
//import java.util.Set;
//import java.util.TreeSet;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import org.apache.http.conn.util.InetAddressUtils;
//import org.json.JSONObject;
//
//import com.youxin.game.model.YXSystem;
//import com.youxin.game.net.YXNetManager;
//
//import android.content.Context;
//import android.net.wifi.WifiInfo;
//import android.net.wifi.WifiManager;
//import android.os.Environment;
//import android.telephony.TelephonyManager;
//import android.text.TextUtils;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.inputmethod.InputMethodManager;
//import android.widget.EditText;
//
//public class YXUtil
//{
//	public static final String	TAG		= "Util";
//
////	private static final String	REG_EXP	= "[0-9]*"; // 正则表达式(匹配电话号码)
//
//	/**
//	 * 获取IMSI
//	 *
//	 * @param context
//	 * @return
//	 * @author: Kevin
//	 * @version: 2013年8月2日11:17:08
//	 */
//	public static String getIMSI(Context mContext)
//	{
//		TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
//		String imsi = tm.getSubscriberId();
//		return imsi == null ? "" : imsi;
//	}
//
//	/**
//	 * 获取字符串中的数字
//	 *
//	 * @param
//	 * @return
//	 * @date 2012-3-20
//	 * @author Kevin
//	 */
//	public static Set<Integer> getNumsFromStr(String str)
//	{
//		String[] ary = str.replaceAll("[^\\d]", " ").split("\\s+");
//		Set<Integer> set = new TreeSet<Integer>();
//		for (String num : ary)
//		{
//			if (!num.trim().equals(""))
//			{
//				set.add(Integer.valueOf(num.trim()));
//			}
//		}
//		return set;
//	}
//
//	/**
//	 * 判断是否标准的手机号码
//	 *
//	 * @param phone
//	 * @return
//	 * @author: kevin
//	 * @data:2012-7-3 下午12:19:29
//	 */
//	public static boolean checkMobilephone(String phone)
//	{
//		phone = removePrefix(phone.trim());
//		return Pattern.compile("^1[3,4,5,8]\\d{9}$").matcher(phone != null ? phone : "").matches();
//	}
//
//	/**
//	 * 移除号码前缀
//	 *
//	 * @param num
//	 * @return
//	 * @author: kevin
//	 * @data:2012-11-14 上午10:31:31
//	 */
//	public static String removePrefix(String num)
//	{
//		if (num != null)
//		{
//			try
//			{
//				num = num.replaceAll(" ", "");
//				num = num.replaceAll("-", "");
//				num = num.replace("+", "");
//				if (num.matches("^86.*") && num.length() != 7 && num.length() != 8)
//					num = num.substring(2);
//				if (num.matches("^12593.*|17951.*|17909.*|17911.*"))
//				{
//					num = num.substring(5);
//				}
//				if (num.length() == 12)
//				{
//					String newNumber = num.substring(1, num.length());
//					if (checkMobilephone(newNumber))
//					{
//						num = newNumber;
//					}
//				}
//			}
//			catch (Exception e)
//			{
//				e.printStackTrace();
//			}
//		}
//		return num;
//	}
//
//	/**
//	 * 此方法描述的是：获取字符串中的数字
//	 *
//	 * @param NumberStr
//	 * @return
//	 * @author: Kevin
//	 * @version: 2012-8-27 下午06:29:25
//	 */
//	public static String getPhoneNumber(String phone)
//	{
//		Matcher m = Pattern.compile("(\\d+)").matcher(phone.replace(" ", ""));
//		StringBuffer phoneSB = new StringBuffer();
//		while (m.find())
//		{
//			phoneSB.append(m.group());
//		}
//		return phoneSB.toString();
//	}
//
//	/**
//	 * 获取本机mac地址 58:17:0C:CB:E2:30
//	 *
//	 * @param mContext
//	 * @return
//	 * @author: xiaozhenhua
//	 * @version: 2012-7-5 上午09:56:14
//	 */
//	public static String getLocalMacAddress(Context mContext)
//	{
//		WifiManager wifi = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
//		WifiInfo info = wifi != null ? wifi.getConnectionInfo() : null;
//		if (info != null)
//		{
//			StringBuffer sbf = new StringBuffer();
//			String macString = info.getMacAddress();
//			if (macString == null)
//			{
//				YXLog.e(TAG, "wifi  getMacAddress return null");
//				return "";
//			}
//			String[] macAddress = macString.split(":");
//			for (String mac : macAddress)
//			{
//				sbf.append(mac);
//			}
//			return sbf.toString();
//		}
//		else
//		{
//			return "";
//		}
//	}
//
//	/**
//	 * 获取本机IP地址
//	 *
//	 * @param useIPv4
//	 * @return
//	 * @author: xiaozhenhua
//	 * @data:2012-12-14 下午5:02:04
//	 */
//	public static String getIPAddress(boolean useIPv4)
//	{
//		try
//		{
//			List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
//			for (NetworkInterface intf : interfaces)
//			{
//				List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
//				for (InetAddress addr : addrs)
//				{
//					if (!addr.isLoopbackAddress())
//					{
//						String sAddr = addr.getHostAddress().toUpperCase();
//						boolean isIPv4 = InetAddressUtils.isIPv4Address(sAddr);
//						if (useIPv4)
//						{
//							if (isIPv4)
//								return sAddr;
//						}
//						else
//						{
//							if (!isIPv4)
//							{
//								int delim = sAddr.indexOf('%'); // drop ip6 port
//								return delim < 0 ? sAddr : sAddr.substring(0, delim);
//							}
//						}
//					}
//				}
//			}
//		}
//		catch (Exception ex)
//		{
//			ex.printStackTrace();
//		} // for now eat exceptions
//		return "";
//	}
//
//	/**
//	 * 读取IMEI，如果IMEI读取失败，侧读取IMSI
//	 *
//	 * @param mContext
//	 * @return
//	 * @author: xiaozhenhua
//	 * @version: 2012-6-18 下午03:54:09
//	 */
//	public static String getIMEI(Context mContext)
//	{
//		TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
//		String imei = tm.getDeviceId();
//		return imei == null || imei.length() == 0 ? getIMSI(mContext) : imei;
//	}
//
//
//	/**
//	 * 根据订单系统返回数据组装为XML格式提交给银联
//	 *
//	 * @param sign
//	 * @param merchantId
//	 * @param merchantOrderId
//	 * @param merchantOrderTime
//	 * @return
//	 */
////	public static String ReturnXml(String sign, String merchantId, String merchantOrderId, String merchantOrderTime)
////	{
////		String lanchpay = "<?xml version=" + "'1.0' " + "encoding=" + "'UTF-8' " + "?>" + "<upomp  application=" + "'LanchPay.Req' " + "version=" + "'1.0.0' " + ">" + "<merchantId>" + merchantId
////				+ "</merchantId>"
////
////				+ "<merchantOrderId>" + merchantOrderId + "</merchantOrderId>"
////
////				+ "<merchantOrderTime>" + merchantOrderTime + "</merchantOrderTime>"
////
////				+ "<sign>" + sign + "</sign>" + "</upomp>";
////		return lanchpay;
////	}
//
//
//	public static String[] getAccInfo(String uidType)
//	{
//		if (TextUtils.isEmpty(uidType))
//		{
//			return null;
//		}
//		if (YXDefine.PRODUCT_UXIN.equals(uidType))
//		{
//			return getYXAccInfo();
//		}
//		else if (YXDefine.PRODUCT_3G.equals(uidType))
//		{
//			return getOtherAccInfo("3g", YXDefine.KEY_3G);
//		}
//		else if (YXDefine.PRODUCT_KC.equals(uidType))
//		{
//			return getOtherAccInfo("kc", YXDefine.KEY_KC);
//		}
//		else if (YXDefine.PRODUCT_UU.equals(uidType))
//		{
//			return getOtherAccInfo("uu", YXDefine.KEY_UU);
//		}
//		else if (YXDefine.PRODUCT_FI.equals(uidType))
//		{
//			return getOtherAccInfo("feiin", YXDefine.KEY_FI);
//		}
//		else if (YXDefine.PRODUCT_SKY.equals(uidType))
//		{
//			return getOtherAccInfo("sky", YXDefine.KEY_SKY);
//		}
//		return null;
//	}
//
//	/**
//	 * 读取sd卡保存的帐号密码
//	 *
//	 * @param mContext
//	 * @param filename
//	 *            文件名字。跟产品名字相关kc/3g/sky/uu/efl/feiin
//	 * @param key
//	 *            			kc_key =keepc_mobilephone!@#456
//	 *						3g_key =keEpC_all
//	 *	 					sky_key =sky_wldh_mobile^%$123
//	 *	 					uu_key  =uu_mobile@uuwldh$%^
//	 *	 					efl_key =3f9L*!aE&
//	 *	 					feiin_key =feiin*!aE&
//	 *
//	 * @return
//	 */
//	public static String[] getOtherAccInfo(String filename, String key)
//	{
//		String[] str = null;
//		// 创建新的保存密码文件
//		String filepath = Environment.getExternalStorageDirectory() + File.separator + "data" + File.separator + "wldh" + File.separator + filename + "_1.txt";
//		FileInputStream is = null;
//		File file = new File(filepath);
//		if (file.exists())
//		{
//			try
//			{
//				str = new String[2];
//				is = new FileInputStream(file);
//				byte buffer[] = new byte[is.available()];
//				is.read(buffer);
//				String content = new String(buffer);
//				String fileContent = YXAlgUtil.decry_RC4(content, key);
//				if (fileContent != null && fileContent.length() > 0)
//				{
//					String filekcid = "账号:";
//					String filepwd = "密码:";
//					int startid = fileContent.indexOf(filekcid);
//					int startpwd = fileContent.indexOf(filepwd);
//					String kcId = fileContent.substring(startid + 3, startpwd - 1);// 要去掉账号冒号3字
//					String pwd = fileContent.substring(startpwd + 3, fileContent.length() - 1);
//					str[0] = kcId;
//					str[1] = pwd;
//				}
//			}
//			catch (FileNotFoundException e)
//			{
//				e.printStackTrace();
//			}
//			catch (Exception e)
//			{
//				e.printStackTrace();
//			}
//			finally
//			{
//				if (is != null)
//				{
//					try
//					{
//						is.close();
//					}
//					catch (Exception e)
//					{
//					}
//				}
//			}
//		}
//		return str;
//	}
//
////	public static String[] getYXAccInfo(String uidType)
////	{
////		if (YXDefine.PRODUCT_UXIN.equals(uidType))
////		{
////			return getYXAccInfo();
////		}
////
////		return
////	}
//
//	/**
//	 * 去SD卡获取登录信息
//	 */
//	public static String[] getYXAccInfo()
//	{
//		String[] str = null;
//		if (getExtState())
//		{
//			try
//			{
//				String path = Environment.getExternalStorageDirectory().getPath() + "/AboutYX/info";
//				File file = new File(path);
//				if (file.exists())
//				{
//					str = new String[2];
//					String read = "";
//					FileReader fileread = new FileReader(file);
//					BufferedReader br = new BufferedReader(fileread);
//					while ((read = br.readLine()) != null)
//					{
//						JSONObject json = null;
//						if (read.contains("{") && read.contains("}"))
//						{
//							json = new JSONObject(read);
//						}
//						else
//						{
//							json = new JSONObject(YXAlgUtil.decry_RC4(read, YXDefine.KEY_YX));
//						}
//						if (json != null && comporeDate(json.getString("date")))
//						{
//							str[0] = json.getString("phone");
//							str[1] = json.getString("pwd");
//						}
//					}
//				}
//			}
//			catch (FileNotFoundException e)
//			{
//				e.printStackTrace();
//			}
//			catch (IOException e)
//			{
//				e.printStackTrace();
//			}
//			catch (Exception e)
//			{
//				e.printStackTrace();
//			}
//		}
//		return str;
//	}
//
//	/**
//	 * 获取SD卡是否存在并可以读写
//	 *
//	 * @return boolean
//	 */
//	public static boolean getExtState()
//	{
//		boolean bo = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
//		return bo;
//	}
//
//	/**
//	 * 比较两个时间是否相差7天
//	 *
//	 * @param date1
//	 * @param date2
//	 * @return
//	 */
//	public static boolean comporeDate(String time)
//	{
//		Date date2 = new Date(Long.valueOf(time));
//		long diff = new Date(System.currentTimeMillis()).getTime() - date2.getTime();
//		long days = diff / (1000 * 60 * 60 * 24);
//		return days < 7;
//	}
//
//	@SuppressWarnings({ "unchecked", "rawtypes" })
//	public static String getSign(String url, String key)
//	{
//		String query = url.contains("?") ? url.substring(url.indexOf("?") + 1) : url;
//		String[] b = query.split("&");
//		if (b == null)
//			return "";
//		ArrayList<String> array = new ArrayList<String>();
//		for (int i = 0; i < b.length; i++)
//		{
//			array.add(b[i]);
//		}
//		Collections.sort(array, new Comparator()
//		{
//			@Override
//			public int compare(Object o1, Object o2)
//			{
//				String s1 = (String) o1;
//				String s2 = (String) o2;
//				return s1.compareTo(s2);
//			}
//		});
//		StringBuffer buf = new StringBuffer();
//		for (int i = 0; i < array.size(); i++)
//		{
//			String pointString = array.get(i);
//			int point = pointString.indexOf("=");
//			if (point >= 0)
//			{
//				pointString = pointString.substring(point + 1);
//			}
//			buf.append(pointString);
//		}
//		buf.append(key);
//		return YXAlgUtil.md5(buf.toString());
//	}
//
////	private static SimpleDateFormat	sDateFormatYMD		= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//	public static final String		HTTP_TEST_FILE_NAME	= "httptest.txt";
//
//	/**
//	 * 写日志信息到文件，AboutYX文件夹目录下，调试用，日志信息会自动换行
//	 *
//	 * @param fileName 文件名
//	 * @param data 写入的数据
//	 */
//	public synchronized static void writeTestFile(String fileName, String data)
//	{/*
//	 * if (!CustomLog.SHOW_LOG) return; String path =
//	 * Environment.getExternalStorageDirectory().getPath()+"/AboutYX"; try {
//	 * File filePath = new File(path); if(!filePath.exists()){
//	 * filePath.mkdirs(); } File file = new File(filePath + "/" + fileName);
//	 * //httptest.txt if(!file.exists()){ file.createNewFile(); } StringBuffer
//	 * buffer = new StringBuffer(); String dateString =
//	 * sDateFormatYMD.format(new Date(System.currentTimeMillis()));
//	 * buffer.append(dateString).append("   ").append(data).append("\n");
//	 *
//	 * RandomAccessFile raf = new RandomAccessFile(file, "rw");//"rw" 读写权限
//	 * raf.seek(file.length()); raf.write(buffer.toString().getBytes());
//	 * raf.close(); } catch (IOException e) { e.printStackTrace(); }
//	 */
//	}
//
//	/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */
//	public static int dip2px(Context context, float dips)
//	{
//		int densityDpi = context.getResources().getDisplayMetrics().densityDpi;
//		float pixs = densityDpi / 160.0F * dips;
//		// System.out.println("pixs=" + pixs );
//		return (int) pixs;
//	}
//
//	/**
//	 * 获取Layout
//	 *
//	 * @param context
//	 * @param name 布局资源名称
//	 * @return
//	 */
//    public static View getLayout(Context context,String name)
//    {
//        return LayoutInflater.from(context).inflate(context.getResources().getIdentifier(name, "layout", context.getPackageName()), null);
//    }
//
//    /**
//	 * 获取Layout
//	 *
//	 * @param context
//	 * @param name 布局资源名称
//	 * @param root
//	 * @return
//	 */
//    public static View getLayout(Context context,String name, ViewGroup root)
//    {
//        return LayoutInflater.from(context).inflate(context.getResources().getIdentifier(name, "layout", context.getPackageName()), root);
//    }
//
//    /**
//	 * 获取Layout
//	 *
//	 * @param context
//	 * @param name 布局资源名称
//	 * @param root
//	 * @param attachToRoot
//	 * @return
//	 */
//    public static View getLayout(Context context,String name, ViewGroup root, boolean attachToRoot)
//    {
//        return LayoutInflater.from(context).inflate(context.getResources().getIdentifier(name, "layout", context.getPackageName()), root, attachToRoot);
//    }
//
//	/**
//	 * 获取View
//	 *
//	 * @param context
//	 * @param name
//	 * @param root
//	 * @return
//	 */
//    public static View getView(Context context,String name,View root)
//    {
//        return root.findViewById(context.getResources().getIdentifier(name, "id", context.getPackageName()));
//    }
//
//    /**
//     * 获取Drawble
//     *
//     * @param context
//     * @param name
//     * @return
//     */
//    public static int getDrawable(Context context,String name)
//    {
//        return context.getResources().getIdentifier(name, "drawable", context.getPackageName());
//    }
//
//    /**
//     * 获取anim
//     *
//     * @param context
//     * @param name
//     * @return
//     */
//    public static int getAnim(Context context,String name)
//    {
//        return context.getResources().getIdentifier(name, "anim", context.getPackageName());
//    }
//
//    /**
//     * 获取string
//     *
//     * @param context
//     * @param name
//     * @return
//     */
//    public static int getString(Context context, String name)
//    {
//    	return context.getResources().getIdentifier(name, "string", context.getPackageName());
//    }
//
//    /**
//     * 获取Color
//     *
//     * @param context
//     * @param name
//     * @return
//     */
//    public static int getColor(Context context,String name)
//    {
//        return context.getResources().getIdentifier(name, "color", context.getPackageName());
//    }
//
//    /**
//     * 获取style
//     *
//     * @param context
//     * @param name
//     * @return
//     */
//    public static int getStyle(Context context,String name)
//    {
//        return context.getResources().getIdentifier(name, "style", context.getPackageName());
//    }
//
//	public static int px2dip_width(Context context, float pxValue)
//	{
//		int _widthPixels = context.getResources().getDisplayMetrics().widthPixels;
//		pxValue = (pxValue * _widthPixels) / 480;
//		return (int) pxValue;
//	}
//
//	/** * 根据手机的分辨率从 px(像素) 的单位 转成为 dip */
//	public static int px2dip_height(Context context, float pxValue)
//	{
//		int _heightPixels = context.getResources().getDisplayMetrics().heightPixels;
//		pxValue = (pxValue * _heightPixels) / 800;
//		return (int) pxValue;
//	}
//
//	public static void showSoftInput(EditText edit)
//	{
//		edit.setFocusable(true);
//		edit.setFocusableInTouchMode(true);
//		edit.requestFocus();
//		InputMethodManager inputManager =(InputMethodManager) edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
//		inputManager.showSoftInput(edit, 0);
//	}
//
//
//	public static String toWebUrl(Context context, String url)
//	{
//		StringBuffer buffer = new StringBuffer(url);
//		if (!url.contains("?"))
//		{
//			buffer.append("?");
//		}
//		if (!url.endsWith("&"))
//		{
//			buffer.append("&");
//		}
//
//		String imei = YXUtil.getIMEI(context);
//		String mac = YXUtil.getLocalMacAddress(context);
//		String rand = String.valueOf(System.currentTimeMillis()) + String.valueOf(Math.round(Math.random() * 10000));
//		String signKey = "uxin!@#456";
//		buffer.append("brandid=").append(URLEncoder.encode(YXSystem.getUidType(context)))
//		.append("&uid=").append(YXSystem.getUid(context))
//		.append("&appid=").append(YXSystem.getAppId(context))
//		.append("&openid=").append(YXSystem.getOpenId(context))
//		.append("&imei=").append(URLEncoder.encode(imei))
//		.append("&mac=").append(URLEncoder.encode(mac))
//		.append("&rand=").append(rand)
//		.append("&v=").append(YXDefine.V)
//		.append("&os=").append(YXDefine.OS)
//		.append("&model=").append(URLEncoder.encode(YXDefine.MODEL))
//		.append("&netmode=").append(YXNetManager.getSelfNetworkType(context))
//		.append("&sign=").append(YXAlgUtil.md5(imei + mac + rand + signKey));
//
//		return buffer.toString();
//	}
//}